For high-performance parallel processing, it is desired for host processors to access shared data at a higher level of abstraction than disk blocks in order to use conventional techniques for storage allocation and maintenance of coherency. In this fashion, the application programming for the parallel processor system can be independent of the hardware implementation. This provides for not only software portability but also incremental upgrading of the shared memory and storage. At present this objective is achieved in advanced data storage systems by using a file mapping protocol (FMP) for access to distributed file systems.
A file mapping protocol (FMP) provides host processors with the ability to perform read and write operations that go directly from the host processor to individual storage elements in a data storage array without funneling all of the read and write operations through a single file server. Instead, the host processor has an FMP client that first obtains file mapping metadata from a metadata file server. The file mapping metadata maps data blocks in the extent of a file to logical blocks of storage in a data storage array. Then the FMP client uses the file mapping metadata to formulate read and write block access requests sent to the storage array for access to logical blocks of file data in the storage array.
Various aspects of a preferred FMP are described in Xu et al. U.S. Pat. No. 6,324,581 issued Nov. 27, 2001; Vahalia et al. U.S. Pat. No. 6,389,420 issued May 14, 2002; Jiang et al. U.S. Pat. No. 6,453,354 issued Sep. 17, 2002; and Vahalia et al. U.S. Pat. No. 6,973,455 issued Dec. 6, 2005; all of which are incorporated herein by reference. An industry-standard version of FMP is described in the Internet Draft by Welch et al. entitled “pNFS Operations draft-welch-pnfs-ops-02.txt” dated Jun. 9, 2005.
In a preferred FMP protocol, the client sends to the metadata server a “get_mapping” request, an “allocate_block” request, and a “commit_block” request. In addition, a client may send an initial “volume-discovery” request in order to discover shared storage objects or files for a specified namespace or file system.
The following is an example of using the preferred FMP requests for reading data. In a host processor, a local application sends a file read request to a FMP client. The FMP client in the host processor sends a “get_mapping” request to a metadata server. The metadata server reads the file mapping, and returns a reply to the FMP client. The FMP client uses the file mapping to read file data from storage, and then the FMP client returns the file data to the local application. For subsequent reads, the FMP client may use cached data or cached mappings.
The following is an example of using the preferred FMP requests for writing data. In a host processor, a local application sends a file write request to the FMP client. The FMP client in the host processor sends an “alloc_block” request to the metadata server. The metadata server pre-allocates storage blocks, and returns a reply to the FMP client. The FMP client returns a reply to the local application, and writes the cached file data to the pre-allocated blocks in storage. Then the FMP client sends a “commit_block” request the metadata server. The metadata server responds by adding the blocks to the file mapping. For subsequent writes, the FMP client may use cached pre-allocated blocks.
Configuration of a data storage system using a file mapping protocol for access to distributed file systems has been problematic because configuration of the data storage system requires coordination between configuration of host processors, at least one metadata file server, and a storage array controller for at least one back-end data storage array. Information required for host set-up, file server set-up, and storage array set-up was collected and programmed into the host processors, file server, and storage array controller, using a combination of manual and semi-automated techniques. The manual steps involved a high risk of human error, so that a systems administrator needed a high level of skill and experience to perform the system configuration task. In the absence of human error, there still was a significant risk of inconsistency among the host set-up, the file system set-up, and the storage array controller set-up. Many hours were required for set-up and validation of an end-to-end solution.
For example, a relatively simple data storage system using a file mapping protocol may include a host processor, an EMC Corporation CELERRA® brand file server, and an EMC Corporation CLARIION® brand data storage array. In this case the host processor is linked to the file server via an IP network, and the host processor and the file server are linked to the data storage array via a storage array network (SAN). A FMP client is installed on the host processor. A distributed file system is set up on the file server, and storage for the distributed file system is set up on the data storage array. The file server is set up so that the FMP client on the host has permission to access metadata of the distributed file system through the file server, and the data storage array is set up so that the FMP client has permission to access the storage for the distributed file system on the data storage array.
Configuration of an EMC Corporation CELERRA® brand file server has involved use of an installation wizard, a management console, and add-on management tools, which are included on a software CD that is shipped with the file server. The installation wizard will auto-detect a host processor on the network, configure the system for the network and perform a cable connectivity and health check, and create a root and sysadmin account. The installation wizard presents seven screens of configuration options. The configuration options are also listed on a worksheet that accompanies the CD. At the end of this initial set-up and configuration, the installation wizard offers to open up one of three optional configuration wizards for creating NFS exports, iSCSI LUNs or CIFS shares. The management console provides options for changing the initial configuration. The options of the management console include network configuration, hardware configuration, and management of X-blades, file systems, shares, checkpoints, and quotas for users, groups, and trees. The management console also displays status and usage information.
Configuration of an EMC Corporation CLARIION® brand data storage array has involved an EMC Corporation NAVISPHERE brand storage management utility. The storage management utility provides automatic or manual configuration of RAID groups, then LUNs can be created from these RAID groups. System administrators can also LUN mask and control data access across multiple heterogeneous hosts in distributed SANs.